1
Além dos Pares: Agrupamento Multitipo com Tuplas
AI037Lesson 19
00:00

Na arquitetura de sistemas C++ de grande escala, definir um tipo formal struct para cada agrupamento temporário de dados é muitas vezes excessivo. A std::tuple serve como um contêiner heterogêneo, generalizando std::pair para conter um número arbitrário de tipos distintos.

1. Construção e Restrições

Diferentemente dos contêineres padrão, o tuple construtor é explícito. Você não pode usar inicialização por cópia com uma lista; você deve usar inicialização direta ou std::make_tuple.

tuple<int, double> t1{1, 2.5}; // OK
tuple<int, double> t2 = {1, 2.5}; // Erro!

2. Acesso e Introspecção

Os membros são acessados por meio de get<i>(nome_da_tupla), onde i deve ser uma expressão constante conhecida em tempo de compilação. Metadados podem ser consultados por meio de tuple_size e tuple_element usando decltype.

Layout da Memória de std::tuplestringget<0>intget<1>doubleget<2>

3. Lógica Relacional

As tuplas são comparadas lexicograficamente. A comparação só é válida se ambas as tuplas tiverem o mesmo número de membros e seus tipos correspondentes suportarem os operadores relacionais.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>